home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
preccx
/
prccx240.lha
/
preccx.c
< prev
next >
Wrap
Text File
|
1993-05-27
|
44KB
|
1,808 lines
# define TOKEN char
# define VALUE char*
# define BEGIN p_begin()
# include "cc.h"
# include "preccx.h"
# undef UNSETNAME
# include "preamble.h"
int p_begin(){
static int passes; /* no. of times re-entered MAIN */
int narg; /* no of command line args */
int nswitch; /* count of command line switches */
int switches; /* flag - when doing command line switches */
int dup2();
if(passes++==0){ /* print motto */
printf("\n\
/* PRE-CC %.2f compiler-compiler \n\
* Copyright Peter Breuer 1989 \n\
* <ptb@uk.ac.cam.eng> Tel 0223 68682\n\
*/\n\
",__PRECC__);
call_mode=1;/* set no-auto shift in value stack */
dup2(0,5); /* save stdin and stdout */
dup2(1,6);
nswitch=0; /* begin command line processing */
switches=1;
for (narg=1;narg<p_argc;narg++){
switch(p_argv[narg][0]){
case '-':
if(!switches) /* mixed switches and files */
usage (1);
nswitch++;
switch(p_argv[narg][1]){
case 'r': /* read buffer size in Kb */
getkintarg(p_argv[narg]+2,&precc_data.readbuffersize,
sizeof (TOKEN) + sizeof (VALUE));
break;
case 'p': /* internal program length in Kb */
getkintarg(p_argv[narg]+2,&precc_data.maxprogramsize,
sizeof (VALUE));
break;
case 'v': /* internal VALUE stack size in Kb */
getkintarg(p_argv[narg]+2,&precc_data.stacksize,
sizeof (STACKVALUE));
break;
case 'f': /* internal FRAME stack size in Kb */
getkintarg(p_argv[narg]+2,&precc_data.contextstacksize,
sizeof (FRAME));
break;
default: /* unknown option */
usage(3);
}
break;
default:
switches=0; /* end of switches */
break;
}
} /* now deal with redirects */
switch(p_argc-1-nswitch){
case 2:
if (freopen(p_argv[nswitch+2], "w", stdout)==NULL)
usage (2);
case 1:
if (freopen(p_argv[nswitch+1], "r", stdin)==NULL)
usage (5);
case 0: break;
default: /* too many files named */
usage (6);
}
}
return 0; /* success */
}
char *envs[20]; /*environment stack*/
char *plvs[20]; /*plainenv stack*/
int ecount=0; /*pointer */
#define environment envs[ecount] /* holds the typed list of params */
#define plainenv plvs[ecount] /* this holds the untyped list of params */
void pushenv()
/* save the current environment and begin another */
{
ecount++;
}
void popenv()
/* release the current env and recall the old */
{
ecount--;
}
/* -- idens with params ------- */
static VOID hid0(){
VV(2)=V(1);
}
static STATUS hid1(){
PARSER rdbrktargs;ACTION hid0;
return(p_attach0n(TOPARSER rdbrktargs,0,hid0,0));
}
static STATUS hid2(){
PARSER hid1, p_nothing0;
return(p_andparse0n(TOPARSER hid1,0,TOPARSER p_nothing0,0));
}
static STATUS hid3(){
PARSER hid2;
return(p_option0n(TOPARSER hid2,0));
}
static STATUS hid4(){
PARSER IDENTIFIER, hid3;
return(p_andparse0n(TOPARSER IDENTIFIER,0,TOPARSER hid3,0));
}
STATUS nameplusargs(){
PARSER hid4;
return((TOPARSER hid4)());
}
static VOID hid5(){
VV(2)=V(1);
}
static STATUS hid6(){
PARSER rdbrktvars;ACTION hid5;
return(p_attach0n(TOPARSER rdbrktvars,0,hid5,0));
}
static STATUS hid7(){
PARSER hid6, p_nothing0;
return(p_andparse0n(TOPARSER hid6,0,TOPARSER p_nothing0,0));
}
static STATUS hid8(){
PARSER hid7;
return(p_option0n(TOPARSER hid7,0));
}
static STATUS hid9(){
PARSER IDENTIFIER, hid8;
return(p_andparse0n(TOPARSER IDENTIFIER,0,TOPARSER hid8,0));
}
STATUS nameplusvars(){
PARSER hid9;
return((TOPARSER hid9)());
}
static STATUS hid10(){
PARSER WHITESPACE, closebracket;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER closebracket,0));
}
static STATUS hid11(){
PARSER someargs, hid10;
return(p_andparse0n(TOPARSER someargs,0,TOPARSER hid10,0));
}
static STATUS hid12(){
PARSER WHITESPACE, hid11;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid11,0));
}
static STATUS hid13(){
PARSER openbracket, hid12;
return(p_andparse0n(TOPARSER openbracket,0,TOPARSER hid12,0));
}
static VOID hid14(){
VV(5)=V(3);
}
static STATUS hid15(){
PARSER hid13;ACTION hid14;
return(p_attach0n(TOPARSER hid13,0,hid14,0));
}
static STATUS hid16(){
PARSER hid15, p_nothing0;
return(p_andparse0n(TOPARSER hid15,0,TOPARSER p_nothing0,0));
}
STATUS sqbrktargs(){
PARSER hid16;
return((TOPARSER hid16)());
}
static STATUS hid17(){
PARSER WHITESPACE, closeparen;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER closeparen,0));
}
static STATUS hid18(){
PARSER theargs, hid17;
return(p_andparse0n(TOPARSER theargs,0,TOPARSER hid17,0));
}
static STATUS hid19(){
PARSER WHITESPACE, hid18;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid18,0));
}
static STATUS hid20(){
PARSER openparen, hid19;
return(p_andparse0n(TOPARSER openparen,0,TOPARSER hid19,0));
}
static VOID hid21(){
VV(5)=V(3);
}
static STATUS hid22(){
PARSER hid20;ACTION hid21;
return(p_attach0n(TOPARSER hid20,0,hid21,0));
}
static STATUS hid23(){
PARSER hid22, p_nothing0;
return(p_andparse0n(TOPARSER hid22,0,TOPARSER p_nothing0,0));
}
STATUS rdbrktargs(){
PARSER hid23;
return((TOPARSER hid23)());
}
static STATUS hid24(){
PARSER WHITESPACE, closeparen;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER closeparen,0));
}
static STATUS hid25(){
PARSER thevars, hid24;
return(p_andparse0n(TOPARSER thevars,0,TOPARSER hid24,0));
}
static STATUS hid26(){
PARSER WHITESPACE, hid25;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid25,0));
}
static STATUS hid27(){
PARSER openparen, hid26;
return(p_andparse0n(TOPARSER openparen,0,TOPARSER hid26,0));
}
static VOID hid28(){
VV(5)=V(3);
}
static STATUS hid29(){
PARSER hid27;ACTION hid28;
return(p_attach0n(TOPARSER hid27,0,hid28,0));
}
static STATUS hid30(){
PARSER hid29, p_nothing0;
return(p_andparse0n(TOPARSER hid29,0,TOPARSER p_nothing0,0));
}
STATUS rdbrktvars(){
PARSER hid30;
return((TOPARSER hid30)());
}
/* these are token-driven writes */
static VOID hid31(){
VV(1) = putchar(T(1));
}
static STATUS hid32(){
PARSER OPENPAREN;ACTION hid31;
return(p_attach0n(TOPARSER OPENPAREN,0,hid31,0));
}
static STATUS hid33(){
PARSER hid32, p_nothing0;
return(p_andparse0n(TOPARSER hid32,0,TOPARSER p_nothing0,0));
}
STATUS openparen(){
PARSER hid33;
return((TOPARSER hid33)());
}
static VOID hid34(){
VV(1) = putchar(T(1));
}
static STATUS hid35(){
PARSER CLOSEPAREN;ACTION hid34;
return(p_attach0n(TOPARSER CLOSEPAREN,0,hid34,0));
}
static STATUS hid36(){
PARSER hid35, p_nothing0;
return(p_andparse0n(TOPARSER hid35,0,TOPARSER p_nothing0,0));
}
STATUS closeparen(){
PARSER hid36;
return((TOPARSER hid36)());
}
static VOID hid37(){
VV(1) = putchar(T(1));
}
static STATUS hid38(){
PARSER OPENBRACKET;ACTION hid37;
return(p_attach0n(TOPARSER OPENBRACKET,0,hid37,0));
}
static STATUS hid39(){
PARSER hid38, p_nothing0;
return(p_andparse0n(TOPARSER hid38,0,TOPARSER p_nothing0,0));
}
STATUS openbracket(){
PARSER hid39;
return((TOPARSER hid39)());
}
static VOID hid40(){
VV(1) = putchar(T(1));
}
static STATUS hid41(){
PARSER CLOSEBRACKET;ACTION hid40;
return(p_attach0n(TOPARSER CLOSEBRACKET,0,hid40,0));
}
static STATUS hid42(){
PARSER hid41, p_nothing0;
return(p_andparse0n(TOPARSER hid41,0,TOPARSER p_nothing0,0));
}
STATUS closebracket(){
PARSER hid42;
return((TOPARSER hid42)());
}
static VOID hid43(){
VV(0)="";
}
static STATUS hid44(){
PARSER p_nothing0;ACTION hid43;
return(p_attach0n(TOPARSER p_nothing0,0,hid43,0));
}
static STATUS hid45(){
PARSER hid44, p_nothing0;
return(p_andparse0n(TOPARSER hid44,0,TOPARSER p_nothing0,0));
}
static STATUS hid46(){
PARSER someargs, hid45;
return(p_orparse0n(TOPARSER someargs,0,TOPARSER hid45,0));
}
STATUS theargs(){
PARSER hid46;
return((TOPARSER hid46)());
}
static VOID hid47(){
VV(0)="";
}
static STATUS hid48(){
PARSER p_nothing0;ACTION hid47;
return(p_attach0n(TOPARSER p_nothing0,0,hid47,0));
}
static STATUS hid49(){
PARSER hid48, p_nothing0;
return(p_andparse0n(TOPARSER hid48,0,TOPARSER p_nothing0,0));
}
static STATUS hid50(){
PARSER somevars, hid49;
return(p_orparse0n(TOPARSER somevars,0,TOPARSER hid49,0));
}
STATUS thevars(){
PARSER hid50;
return((TOPARSER hid50)());
}
static VOID hid51(){
VV(1)=putchar(',');
}
static STATUS hid52(){
PARSER COMMA;ACTION hid51;
return(p_attach0n(TOPARSER COMMA,0,hid51,0));
}
static STATUS hid53(){
PARSER hid52, p_nothing0;
return(p_andparse0n(TOPARSER hid52,0,TOPARSER p_nothing0,0));
}
STATUS comma(){
PARSER hid53;
return((TOPARSER hid53)());
}
static STATUS hid54(){
PARSER WHITESPACE, expr;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER expr,0));
}
static STATUS hid55(){
PARSER comma, hid54;
return(p_andparse0n(TOPARSER comma,0,TOPARSER hid54,0));
}
static STATUS hid56(){
PARSER WHITESPACE, hid55;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid55,0));
}
static VOID hid57(){
VV(5)=V(1);
}
static STATUS hid58(){
PARSER hid56;ACTION hid57;
return(p_attach0n(TOPARSER hid56,0,hid57,0));
}
static STATUS hid59(){
PARSER hid58, p_nothing0;
return(p_andparse0n(TOPARSER hid58,0,TOPARSER p_nothing0,0));
}
static STATUS hid60(){
PARSER hid59;
return(p_many0n(TOPARSER hid59,0));
}
static STATUS hid61(){
PARSER expr, hid60;
return(p_andparse0n(TOPARSER expr,0,TOPARSER hid60,0));
}
STATUS someargs(){
PARSER hid61;
return((TOPARSER hid61)());
}
static STATUS hid62(){
PARSER WHITESPACE, var;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER var,0));
}
static STATUS hid63(){
PARSER comma, hid62;
return(p_andparse0n(TOPARSER comma,0,TOPARSER hid62,0));
}
static STATUS hid64(){
PARSER WHITESPACE, hid63;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid63,0));
}
static VOID hid65(){
VV(5)=V(1);
}
static STATUS hid66(){
PARSER hid64;ACTION hid65;
return(p_attach0n(TOPARSER hid64,0,hid65,0));
}
static STATUS hid67(){
PARSER hid66, p_nothing0;
return(p_andparse0n(TOPARSER hid66,0,TOPARSER p_nothing0,0));
}
static STATUS hid68(){
PARSER hid67;
return(p_many0n(TOPARSER hid67,0));
}
static STATUS hid69(){
PARSER var, hid68;
return(p_andparse0n(TOPARSER var,0,TOPARSER hid68,0));
}
STATUS somevars(){
PARSER hid69;
return((TOPARSER hid69)());
}
static VOID hid70(){
if(*putargs(""))putargs(",");putargs("PARAM ");putargs(V(1)); if(*putmeta(""))putmeta(",");putmeta(V(1));
}
static STATUS hid71(){
PARSER IDENTIFIER;ACTION hid70;
return(p_attach0n(TOPARSER IDENTIFIER,0,hid70,0));
}
static STATUS hid72(){
PARSER hid71, p_nothing0;
return(p_andparse0n(TOPARSER hid71,0,TOPARSER p_nothing0,0));
}
STATUS var(){
PARSER hid72;
return((TOPARSER hid72)());
}
/* -- parser identifiers --- */
/* collect IDENTIFIERs from buffers */
void SETENV()
/* seal the current environment to be whats in the buffers now */
{
environment=putargs("");
plainenv=putmeta("");
getargs(&environment);
getmeta(&plainenv);
}
static VOID hid73(){
getname(&V(1)); SETENV();
}
static STATUS hid74(){
PARSER nameplusvars;ACTION hid73;
return(p_attach0n(TOPARSER nameplusvars,0,hid73,0));
}
static STATUS hid75(){
PARSER hid74, p_nothing0;
return(p_andparse0n(TOPARSER hid74,0,TOPARSER p_nothing0,0));
}
STATUS declname(){
PARSER hid75;
return((TOPARSER hid75)());
}
/*@ [ BACKSLASH IDENTIFIER :VV(3)=V(3);getname(&V(3));ADDVAR(V(3));: ]
*/
/* collect a domain IDENTIFIER in the same way */
static VOID hid76(){
getname(&V(1));
}
static STATUS hid77(){
PARSER nameplusargs;ACTION hid76;
return(p_attach0n(TOPARSER nameplusargs,0,hid76,0));
}
static STATUS hid78(){
PARSER hid77, p_nothing0;
return(p_andparse0n(TOPARSER hid77,0,TOPARSER p_nothing0,0));
}
STATUS exprname(){
PARSER hid78;
return((TOPARSER hid78)());
}
/* -- start of precc defn ---- */
/* In 2.40 and above ...
@ declaration = ^ AT !{declerr} WHITESPACE declname
@ WHITESPACE EQUALS WHITESPACE
@ expression WHITESPACE
@ :VV(10) = P_REN(V(5),V(9));RESET;:
*/
/* In 2.31 and below ...
*/
static STATUS hid79(){
PARSER expression, WHITESPACE;
return(p_andparse0n(TOPARSER expression,0,TOPARSER WHITESPACE,0));
}
static STATUS hid80(){
PARSER WHITESPACE, hid79;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid79,0));
}
static STATUS hid81(){
PARSER EQUALS, hid80;
return(p_andparse0n(TOPARSER EQUALS,0,TOPARSER hid80,0));
}
static STATUS hid82(){
PARSER WHITESPACE, hid81;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid81,0));
}
static STATUS hid83(){
PARSER declname, hid82;
return(p_andparse0n(TOPARSER declname,0,TOPARSER hid82,0));
}
static STATUS hid84(){
PARSER WHITESPACE, hid83;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid83,0));
}
static STATUS hid85(){
PARSER p_uniq0, hid84;
return(p_andparse0n(TOPARSER p_uniq0,0,TOPARSER hid84,0));
}
static VOID hid86(){
VV(10) = P_REN(V(5),V(9));RESET;
}
static STATUS hid87(){
PARSER hid85;ACTION hid86;
return(p_attach0n(TOPARSER hid85,0,hid86,0));
}
static STATUS hid88(){
PARSER hid87, p_nothing0;
return(p_andparse0n(TOPARSER hid87,0,TOPARSER p_nothing0,0));
}
static VOID hid89(){
VV(2) = V(1);RESET;
}
static STATUS hid90(){
PARSER declerr;ACTION hid89;
return(p_attach0n(TOPARSER declerr,0,hid89,0));
}
static STATUS hid91(){
PARSER hid90, p_nothing0;
return(p_andparse0n(TOPARSER hid90,0,TOPARSER p_nothing0,0));
}
static STATUS hid92(){
PARSER hid88, hid91;
return(p_orparse0n(TOPARSER hid88,0,TOPARSER hid91,0));
}
static STATUS hid93(){
PARSER AT, hid92;
return(p_andparse0n(TOPARSER AT,0,TOPARSER hid92,0));
}
static STATUS hid94(){
PARSER p_first0, hid93;
return(p_andparse0n(TOPARSER p_first0,0,TOPARSER hid93,0));
}
STATUS declaration(){
PARSER hid94;
return((TOPARSER hid94)());
}
static STATUS hid95(){
PARSER printdeclerr, passthrough;
return(p_andparse0n(TOPARSER printdeclerr,0,TOPARSER passthrough,0));
}
static VOID hid96(){
VV(2)=V(1);
}
static STATUS hid97(){
PARSER hid95;ACTION hid96;
return(p_attach0n(TOPARSER hid95,0,hid96,0));
}
static STATUS hid98(){
PARSER hid97, p_nothing0;
return(p_andparse0n(TOPARSER hid97,0,TOPARSER p_nothing0,0));
}
STATUS declerr(){
PARSER hid98;
return((TOPARSER hid98)());
}
static VOID hid99(){
VV(0)="@"; printf("line %d error: malformed declaration\n@?",yylineno);
}
static STATUS hid100(){
PARSER p_nothing0;ACTION hid99;
return(p_attach0n(TOPARSER p_nothing0,0,hid99,0));
}
static STATUS hid101(){
PARSER hid100, p_nothing0;
return(p_andparse0n(TOPARSER hid100,0,TOPARSER p_nothing0,0));
}
STATUS printdeclerr(){
PARSER hid101;
return((TOPARSER hid101)());
}
/* that was it. Now the top level (MAIN) parse. */
static STATUS hid102(){
PARSER notanat, passthrough;
return(p_andparse0n(TOPARSER notanat,0,TOPARSER passthrough,0));
}
static VOID hid103(){
VV(0)="";printf("\n");
}
static STATUS hid104(){
PARSER p_nothing0;ACTION hid103;
return(p_attach0n(TOPARSER p_nothing0,0,hid103,0));
}
static STATUS hid105(){
PARSER hid104, p_nothing0;
return(p_andparse0n(TOPARSER hid104,0,TOPARSER p_nothing0,0));
}
static STATUS hid106(){
PARSER hid102, hid105;
return(p_orparse0n(TOPARSER hid102,0,TOPARSER hid105,0));
}
static STATUS hid107(){
PARSER declaration, hid106;
return(p_orparse0n(TOPARSER declaration,0,TOPARSER hid106,0));
}
STATUS line(){
PARSER hid107;
return((TOPARSER hid107)());
}
static VOID hid108(){
VV(1)=putchar(T(1));
}
static STATUS hid109(){
PARSER NOTANAT;ACTION hid108;
return(p_attach0n(TOPARSER NOTANAT,0,hid108,0));
}
static STATUS hid110(){
PARSER hid109, p_nothing0;
return(p_andparse0n(TOPARSER hid109,0,TOPARSER p_nothing0,0));
}
STATUS notanat(){
PARSER hid110;
return((TOPARSER hid110)());
}
/* this is a deliberate pop of the value 'behind' if we get none */
static VOID hid111(){
VV(2)=V(1);
}
static STATUS hid112(){
PARSER anychar;ACTION hid111;
return(p_attach0n(TOPARSER anychar,0,hid111,0));
}
static STATUS hid113(){
PARSER hid112, p_nothing0;
return(p_andparse0n(TOPARSER hid112,0,TOPARSER p_nothing0,0));
}
static STATUS hid114(){
PARSER hid113;
return(p_many0n(TOPARSER hid113,0));
}
static VOID hid115(){
getname(&V(1));printf("%s\n",V(1)); RESET;
}
static STATUS hid116(){
PARSER hid114;ACTION hid115;
return(p_attach0n(TOPARSER hid114,0,hid115,0));
}
static STATUS hid117(){
PARSER hid116, p_nothing0;
return(p_andparse0n(TOPARSER hid116,0,TOPARSER p_nothing0,0));
}
STATUS passthrough(){
PARSER hid117;
return((TOPARSER hid117)());
}
static VOID hid118(){
VV(1)=putchar(T(1));
}
static STATUS hid119(){
PARSER ANYTHING;ACTION hid118;
return(p_attach0n(TOPARSER ANYTHING,0,hid118,0));
}
static STATUS hid120(){
PARSER hid119, p_nothing0;
return(p_andparse0n(TOPARSER hid119,0,TOPARSER p_nothing0,0));
}
STATUS anychar(){
PARSER hid120;
return((TOPARSER hid120)());
}
/* ---- parser expressions -------- */
static STATUS hid121(){
PARSER alternates, empty;
return(p_orparse0n(TOPARSER alternates,0,TOPARSER empty,0));
}
STATUS expression(){
PARSER hid121;
return((TOPARSER hid121)());
}
/* a <'|'> separated series, at least one <'|'> - note the overpull
I prefer the order which results from recursion */
static STATUS hid122(){
PARSER WHITESPACE, alternates;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER alternates,0));
}
static STATUS hid123(){
PARSER OR, hid122;
return(p_andparse0n(TOPARSER OR,0,TOPARSER hid122,0));
}
static STATUS hid124(){
PARSER WHITESPACE, hid123;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid123,0));
}
static VOID hid125(){
char *n; VV(5)=(GETNEWNAME(&n,plainenv,NULL),P_ALT(n,V(1),V(5)));
}
static STATUS hid126(){
PARSER hid124;ACTION hid125;
return(p_attach0n(TOPARSER hid124,0,hid125,0));
}
static STATUS hid127(){
PARSER hid126, p_nothing0;
return(p_andparse0n(TOPARSER hid126,0,TOPARSER p_nothing0,0));
}
static STATUS hid128(){
PARSER hid127;
return(p_option0n(TOPARSER hid127,0));
}
static STATUS hid129(){
PARSER sequence, hid128;
return(p_andparse0n(TOPARSER sequence,0,TOPARSER hid128,0));
}
STATUS alternates(){
PARSER hid129;
return((TOPARSER hid129)());
}
/* appending is much more efficient than prepending because I don't waste
C-stack space with MARK before a parse */
static STATUS hid130(){
PARSER WHITESPACE, manysequents;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER manysequents,0));
}
static STATUS hid131(){
PARSER command, hid130;
return(p_andparse0n(TOPARSER command,0,TOPARSER hid130,0));
}
static STATUS hid132(){
PARSER WHITESPACE, hid131;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid131,0));
}
static VOID hid133(){
char *n; VV(3)=(GETNEWNAME(&n,plainenv,NULL),P_AND(n,V(1),V(3)));
}
static STATUS hid134(){
PARSER hid132;ACTION hid133;
return(p_attach0n(TOPARSER hid132,0,hid133,0));
}
static STATUS hid135(){
PARSER hid134, p_nothing0;
return(p_andparse0n(TOPARSER hid134,0,TOPARSER p_nothing0,0));
}
static STATUS hid136(){
PARSER hid135;
return(p_many0n(TOPARSER hid135,0));
}
static STATUS hid137(){
PARSER manysequents, hid136;
return(p_andparse0n(TOPARSER manysequents,0,TOPARSER hid136,0));
}
STATUS sequence(){
PARSER hid137;
return((TOPARSER hid137)());
}
/* here we attach to the manysequents which this follows */
static STATUS hid138(){
PARSER c_code, COLONorEOL;
return(p_andparse0n(TOPARSER c_code,0,TOPARSER COLONorEOL,0));
}
static STATUS hid139(){
PARSER COLON, hid138;
return(p_andparse0n(TOPARSER COLON,0,TOPARSER hid138,0));
}
static VOID hid140(){
char *n,*m; VV(5)=(GETNEWNAME(&n,plainenv,NULL),GETNEWNAME(&m,plainenv,NULL),P_ATT(m,V(1),n,V(4)));
}
static STATUS hid141(){
PARSER hid139;ACTION hid140;
return(p_attach0n(TOPARSER hid139,0,hid140,0));
}
static STATUS hid142(){
PARSER hid141, p_nothing0;
return(p_andparse0n(TOPARSER hid141,0,TOPARSER p_nothing0,0));
}
STATUS command(){
PARSER hid142;
return((TOPARSER hid142)());
}
/* commands can't be treated as ordinary atoms at the moment, because they
* are required to end a sequence of 'and's and force a stack shift */
static VOID hid143(){
VV(1)=V(1); getname(&V(1));
}
static STATUS hid144(){
PARSER cstuffs;ACTION hid143;
return(p_attach0n(TOPARSER cstuffs,0,hid143,0));
}
static STATUS hid145(){
PARSER hid144, p_nothing0;
return(p_andparse0n(TOPARSER hid144,0,TOPARSER p_nothing0,0));
}
STATUS c_code(){
PARSER hid145;
return((TOPARSER hid145)());
}
/* the stuff inside a command is a sequence of C constants or C tokens */
static VOID hid146(){
VV(2) = V(1);
}
static STATUS hid147(){
PARSER cstuff;ACTION hid146;
return(p_attach0n(TOPARSER cstuff,0,hid146,0));
}
static STATUS hid148(){
PARSER hid147, p_nothing0;
return(p_andparse0n(TOPARSER hid147,0,TOPARSER p_nothing0,0));
}
static STATUS hid149(){
PARSER hid148;
return(p_many0n(TOPARSER hid148,0));
}
static STATUS hid150(){
PARSER cstuff, hid149;
return(p_andparse0n(TOPARSER cstuff,0,TOPARSER hid149,0));
}
static VOID hid151(){
VV(0) ="";
}
static STATUS hid152(){
PARSER p_nothing0;ACTION hid151;
return(p_attach0n(TOPARSER p_nothing0,0,hid151,0));
}
static STATUS hid153(){
PARSER hid152, p_nothing0;
return(p_andparse0n(TOPARSER hid152,0,TOPARSER p_nothing0,0));
}
static STATUS hid154(){
PARSER hid150, hid153;
return(p_orparse0n(TOPARSER hid150,0,TOPARSER hid153,0));
}
STATUS cstuffs(){
PARSER hid154;
return((TOPARSER hid154)());
}
/* all the component tokens are accumulating in the cbuff */
static VOID hid155(){
VV(1) = putchar(T(1));
}
static STATUS hid156(){
PARSER NOTACOLON;ACTION hid155;
return(p_attach0n(TOPARSER NOTACOLON,0,hid155,0));
}
static STATUS hid157(){
PARSER hid156, p_nothing0;
return(p_andparse0n(TOPARSER hid156,0,TOPARSER p_nothing0,0));
}
static STATUS hid158(){
PARSER COMMENT, hid157;
return(p_orparse0n(TOPARSER COMMENT,0,TOPARSER hid157,0));
}
static STATUS hid159(){
PARSER DOLLARID, hid158;
return(p_orparse0n(TOPARSER DOLLARID,0,TOPARSER hid158,0));
}
static STATUS hid160(){
PARSER CHARCONST, hid159;
return(p_orparse0n(TOPARSER CHARCONST,0,TOPARSER hid159,0));
}
static STATUS hid161(){
PARSER STRING, hid160;
return(p_orparse0n(TOPARSER STRING,0,TOPARSER hid160,0));
}
STATUS cstuff(){
PARSER hid161;
return((TOPARSER hid161)());
}
static STATUS hid162(){
PARSER sequent, empty;
return(p_orparse0n(TOPARSER sequent,0,TOPARSER empty,0));
}
static STATUS hid163(){
PARSER moresequents;
return(p_option0n(TOPARSER moresequents,0));
}
static STATUS hid164(){
PARSER hid162, hid163;
return(p_andparse0n(TOPARSER hid162,0,TOPARSER hid163,0));
}
STATUS manysequents(){
PARSER hid164;
return((TOPARSER hid164)());
}
/* overpull again in the option
again, I prefer to use recursion for better output order */
void ADDVAR(char *x)
/* make a new environment with one more var. save the old. */
{
char *n;
/* finish off current env */
getargs(&n);
getmeta(&n);
/* copy old to new - start by buffering it */
putargs(environment);
putmeta(plainenv);
/* increment env count */
pushenv();
/* point env at buffer */
environment=putargs("");
plainenv=putmeta("");
/* add new var */
if(*environment){
putargs(",");
putmeta(",");
}
putargs("PARAM ");
putargs(x);
putmeta(x);
/* note that the buffer is still unterminated */
}
/* without a parameterized spec, I can't prevent repetitions */
static STATUS hid165(){
PARSER BACKSLASH, IDENTIFIER;
return(p_andparse0n(TOPARSER BACKSLASH,0,TOPARSER IDENTIFIER,0));
}
static VOID hid166(){
VV(2)=V(2);getname(&V(2));ADDVAR(V(2));
}
static STATUS hid167(){
PARSER hid165;ACTION hid166;
return(p_attach0n(TOPARSER hid165,0,hid166,0));
}
static STATUS hid168(){
PARSER hid167, p_nothing0;
return(p_andparse0n(TOPARSER hid167,0,TOPARSER p_nothing0,0));
}
STATUS newvar(){
PARSER hid168;
return((TOPARSER hid168)());
}
/* these next two are a pair. take the shifts together */
static STATUS hid169(){
PARSER moresequents;
return(p_option0n(TOPARSER moresequents,0));
}
static STATUS hid170(){
PARSER sequent, hid169;
return(p_andparse0n(TOPARSER sequent,0,TOPARSER hid169,0));
}
STATUS somesequents(){
PARSER hid170;
return((TOPARSER hid170)());
}
static STATUS hid171(){
PARSER SOMESPACE, manysequents;
return(p_andparse0n(TOPARSER SOMESPACE,0,TOPARSER manysequents,0));
}
static STATUS hid172(){
PARSER newvar, hid171;
return(p_andparse0n(TOPARSER newvar,0,TOPARSER hid171,0));
}
static VOID hid173(){
char *n; VV(4)=V(1);popenv(); GETNEWNAME(&n,plainenv,NULL);V(1)=P_STAR(n,V(1),V(4),V(2));
}
static STATUS hid174(){
PARSER hid172;ACTION hid173;
return(p_attach0n(TOPARSER hid172,0,hid173,0));
}
static STATUS hid175(){
PARSER hid174, p_nothing0;
return(p_andparse0n(TOPARSER hid174,0,TOPARSER p_nothing0,0));
}
static STATUS hid176(){
PARSER SOMESPACE, somesequents;
return(p_andparse0n(TOPARSER SOMESPACE,0,TOPARSER somesequents,0));
}
static VOID hid177(){
char *n;VV(3)=(GETNEWNAME(&n,plainenv,NULL),P_AND(n,V(1),V(3)));
}
static STATUS hid178(){
PARSER hid176;ACTION hid177;
return(p_attach0n(TOPARSER hid176,0,hid177,0));
}
static STATUS hid179(){
PARSER hid178, p_nothing0;
return(p_andparse0n(TOPARSER hid178,0,TOPARSER p_nothing0,0));
}
static STATUS hid180(){
PARSER hid175, hid179;
return(p_orparse0n(TOPARSER hid175,0,TOPARSER hid179,0));
}
STATUS moresequents(){
PARSER hid180;
return((TOPARSER hid180)());
}
/* Don't overpull now because ... */
static STATUS hid181(){
PARSER postfix;
return(p_option0n(TOPARSER postfix,0));
}
static STATUS hid182(){
PARSER seqoperand, hid181;
return(p_andparse0n(TOPARSER seqoperand,0,TOPARSER hid181,0));
}
STATUS sequent(){
PARSER hid182;
return((TOPARSER hid182)());
}
/* in each of these cases the postfix must behave as though the
seqoperand were before it and overpull its arguments and write into
the stack position to the left of itself */
static STATUS hid183(){
PARSER plusop, hideop;
return(p_orparse0n(TOPARSER plusop,0,TOPARSER hideop,0));
}
static STATUS hid184(){
PARSER starop, hid183;
return(p_orparse0n(TOPARSER starop,0,TOPARSER hid183,0));
}
STATUS postfix(){
PARSER hid184;
return((TOPARSER hid184)());
}
static STATUS hid185(){
PARSER WHITESPACE, CLOSEBRACE;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER CLOSEBRACE,0));
}
static STATUS hid186(){
PARSER expression, hid185;
return(p_andparse0n(TOPARSER expression,0,TOPARSER hid185,0));
}
static STATUS hid187(){
PARSER WHITESPACE, hid186;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid186,0));
}
static STATUS hid188(){
PARSER OPENBRACE, hid187;
return(p_andparse0n(TOPARSER OPENBRACE,0,TOPARSER hid187,0));
}
static VOID hid189(){
VV(5) = V(3);
}
static STATUS hid190(){
PARSER hid188;ACTION hid189;
return(p_attach0n(TOPARSER hid188,0,hid189,0));
}
static STATUS hid191(){
PARSER hid190, p_nothing0;
return(p_andparse0n(TOPARSER hid190,0,TOPARSER p_nothing0,0));
}
STATUS bracket(){
PARSER hid191;
return((TOPARSER hid191)());
}
static STATUS hid192(){
PARSER WHITESPACE, CLOSEBRACKET;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER CLOSEBRACKET,0));
}
static STATUS hid193(){
PARSER expression, hid192;
return(p_andparse0n(TOPARSER expression,0,TOPARSER hid192,0));
}
static STATUS hid194(){
PARSER WHITESPACE, hid193;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid193,0));
}
static STATUS hid195(){
PARSER OPENBRACKET, hid194;
return(p_andparse0n(TOPARSER OPENBRACKET,0,TOPARSER hid194,0));
}
static VOID hid196(){
char *n;VV(5)=(GETNEWNAME(&n,plainenv,NULL),P_OPT(n,V(3)));
}
static STATUS hid197(){
PARSER hid195;ACTION hid196;
return(p_attach0n(TOPARSER hid195,0,hid196,0));
}
static STATUS hid198(){
PARSER hid197, p_nothing0;
return(p_andparse0n(TOPARSER hid197,0,TOPARSER p_nothing0,0));
}
STATUS option(){
PARSER hid198;
return((TOPARSER hid198)());
}
static VOID hid199(){
VV(0)= "p_nothing0";
}
static STATUS hid200(){
PARSER p_nothing0;ACTION hid199;
return(p_attach0n(TOPARSER p_nothing0,0,hid199,0));
}
static STATUS hid201(){
PARSER hid200, p_nothing0;
return(p_andparse0n(TOPARSER hid200,0,TOPARSER p_nothing0,0));
}
STATUS empty(){
PARSER hid201;
return((TOPARSER hid201)());
}
static STATUS hid202(){
PARSER AT, expr;
return(p_andparse0n(TOPARSER AT,0,TOPARSER expr,0));
}
static VOID hid203(){
char *n; VV(2)=(getname(&V(2)), GETNEWNAME(&n,plainenv,NULL),P_ATA(n,V(2)));
}
static STATUS hid204(){
PARSER hid202;ACTION hid203;
return(p_attach0n(TOPARSER hid202,0,hid203,0));
}
static STATUS hid205(){
PARSER hid204, p_nothing0;
return(p_andparse0n(TOPARSER hid204,0,TOPARSER p_nothing0,0));
}
STATUS result(){
PARSER hid205;
return((TOPARSER hid205)());
}
/* here is one overpull */
int starflag=0;
char *starqual;
static VOID hid206(){
starflag=1;VV(2)=(getname(&V(2)),V(2));
}
static STATUS hid207(){
PARSER expr;ACTION hid206;
return(p_attach0n(TOPARSER expr,0,hid206,0));
}
static STATUS hid208(){
PARSER hid207, p_nothing0;
return(p_andparse0n(TOPARSER hid207,0,TOPARSER p_nothing0,0));
}
static STATUS hid209(){
PARSER hid208;
return(p_option0n(TOPARSER hid208,0));
}
static STATUS hid210(){
PARSER STAR, hid209;
return(p_andparse0n(TOPARSER STAR,0,TOPARSER hid209,0));
}
static VOID hid211(){
char *n;if(starflag){ VV(2)=(GETNEWNAME(&n,plainenv,NULL),P_ITR(n,V(1),V(3))); } else { VV(2)=(GETNEWNAME(&n,plainenv,NULL),P_INF(n,V(1))); } starflag=0;
}
static STATUS hid212(){
PARSER hid210;ACTION hid211;
return(p_attach0n(TOPARSER hid210,0,hid211,0));
}
static STATUS hid213(){
PARSER hid212, p_nothing0;
return(p_andparse0n(TOPARSER hid212,0,TOPARSER p_nothing0,0));
}
STATUS starop(){
PARSER hid213;
return((TOPARSER hid213)());
}
static VOID hid214(){
VV(1)="p_anything0";
}
static STATUS hid215(){
PARSER QUESTION;ACTION hid214;
return(p_attach0n(TOPARSER QUESTION,0,hid214,0));
}
static STATUS hid216(){
PARSER hid215, p_nothing0;
return(p_andparse0n(TOPARSER hid215,0,TOPARSER p_nothing0,0));
}
STATUS anymatch(){
PARSER hid216;
return((TOPARSER hid216)());
}
/* recall that exprnames get saved in the cbuff */
static STATUS hid217(){
PARSER plingmatch, exprname;
return(p_orparse0n(TOPARSER plingmatch,0,TOPARSER exprname,0));
}
static STATUS hid218(){
PARSER plingexpr, hid217;
return(p_orparse0n(TOPARSER plingexpr,0,TOPARSER hid217,0));
}
static STATUS hid219(){
PARSER finishmatch, hid218;
return(p_orparse0n(TOPARSER finishmatch,0,TOPARSER hid218,0));
}
static STATUS hid220(){
PARSER dollarplingmatch, hid219;
return(p_orparse0n(TOPARSER dollarplingmatch,0,TOPARSER hid219,0));
}
static STATUS hid221(){
PARSER eofmatch, hid220;
return(p_orparse0n(TOPARSER eofmatch,0,TOPARSER hid220,0));
}
static STATUS hid222(){
PARSER beginmatch, hid221;
return(p_orparse0n(TOPARSER beginmatch,0,TOPARSER hid221,0));
}
static STATUS hid223(){
PARSER anymatch, hid222;
return(p_orparse0n(TOPARSER anymatch,0,TOPARSER hid222,0));
}
static STATUS hid224(){
PARSER result, hid223;
return(p_orparse0n(TOPARSER result,0,TOPARSER hid223,0));
}
static STATUS hid225(){
PARSER phantom, hid224;
return(p_orparse0n(TOPARSER phantom,0,TOPARSER hid224,0));
}
static STATUS hid226(){
PARSER test, hid225;
return(p_orparse0n(TOPARSER test,0,TOPARSER hid225,0));
}
static STATUS hid227(){
PARSER range, hid226;
return(p_orparse0n(TOPARSER range,0,TOPARSER hid226,0));
}
static STATUS hid228(){
PARSER antiliteral, hid227;
return(p_orparse0n(TOPARSER antiliteral,0,TOPARSER hid227,0));
}
static STATUS hid229(){
PARSER literal, hid228;
return(p_orparse0n(TOPARSER literal,0,TOPARSER hid228,0));
}
static STATUS hid230(){
PARSER option, hid229;
return(p_orparse0n(TOPARSER option,0,TOPARSER hid229,0));
}
static STATUS hid231(){
PARSER bracket, hid230;
return(p_orparse0n(TOPARSER bracket,0,TOPARSER hid230,0));
}
STATUS seqoperand(){
PARSER hid231;
return((TOPARSER hid231)());
}
static STATUS hid232(){
PARSER PLING, bracket;
return(p_andparse0n(TOPARSER PLING,0,TOPARSER bracket,0));
}
static VOID hid233(){
char *n; VV(2)=(GETNEWNAME(&n,plainenv,NULL),P_ERR(n,V(2)));
}
static STATUS hid234(){
PARSER hid232;ACTION hid233;
return(p_attach0n(TOPARSER hid232,0,hid233,0));
}
static STATUS hid235(){
PARSER hid234, p_nothing0;
return(p_andparse0n(TOPARSER hid234,0,TOPARSER p_nothing0,0));
}
STATUS plingexpr(){
PARSER hid235;
return((TOPARSER hid235)());
}
static STATUS hid236(){
PARSER WHITESPACE, OPENBRACKET;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER OPENBRACKET,0));
}
static STATUS hid237(){
PARSER expression, hid236;
return(p_andparse0n(TOPARSER expression,0,TOPARSER hid236,0));
}
static STATUS hid238(){
PARSER WHITESPACE, hid237;
return(p_andparse0n(TOPARSER WHITESPACE,0,TOPARSER hid237,0));
}
static STATUS hid239(){
PARSER CLOSEBRACKET, hid238;
return(p_andparse0n(TOPARSER CLOSEBRACKET,0,TOPARSER hid238,0));
}
static VOID hid240(){
char *n;VV(5)=(GETNEWNAME(&n,plainenv,NULL),P_PHA(n,V(3)));
}
static STATUS hid241(){
PARSER hid239;ACTION hid240;
return(p_attach0n(TOPARSER hid239,0,hid240,0));
}
static STATUS hid242(){
PARSER hid241, p_nothing0;
return(p_andparse0n(TOPARSER hid241,0,TOPARSER p_nothing0,0));
}
STATUS phantom(){
PARSER hid242;
return((TOPARSER hid242)());
}
/* a literal is anything inside angle brackets.
* an antiliteral is anything inside anti angle brackets.
* anglebrackets inside may be escaped to protect them
*/
static VOID hid243(){
VV(1) = putchar(T(1));
}
static STATUS hid244(){
PARSER NOTARIGHTANGLEBRACKET;ACTION hid243;
return(p_attach0n(TOPARSER NOTARIGHTANGLEBRACKET,0,hid243,0));
}
static STATUS hid245(){
PARSER hid244, p_nothing0;
return(p_andparse0n(TOPARSER hid244,0,TOPARSER p_nothing0,0));
}
static STATUS hid246(){
PARSER COMMENT, hid245;
return(p_orparse0n(TOPARSER COMMENT,0,TOPARSER hid245,0));
}
static STATUS hid247(){
PARSER CHARCONST, hid246;
return(p_orparse0n(TOPARSER CHARCONST,0,TOPARSER hid246,0));
}
static STATUS hid248(){
PARSER STRING, hid247;
return(p_orparse0n(TOPARSER STRING,0,TOPARSER hid247,0));
}
STATUS lstuff(){
PARSER hid248;
return((TOPARSER hid248)());
}
static VOID hid249(){
VV(1) = putchar(T(1));
}
static STATUS hid250(){
PARSER NOTALEFTANGLEBRACKET;ACTION hid249;
return(p_attach0n(TOPARSER NOTALEFTANGLEBRACKET,0,hid249,0));
}
static STATUS hid251(){
PARSER hid250, p_nothing0;
return(p_andparse0n(TOPARSER hid250,0,TOPARSER p_nothing0,0));
}
static STATUS hid252(){
PARSER COMMENT, hid251;
return(p_orparse0n(TOPARSER COMMENT,0,TOPARSER hid251,0));
}
static STATUS hid253(){
PARSER CHARCONST, hid252;
return(p_orparse0n(TOPARSER CHARCONST,0,TOPARSER hid252,0));
}
static STATUS hid254(){
PARSER STRING, hid253;
return(p_orparse0n(TOPARSER STRING,0,TOPARSER hid253,0));
}
STATUS alstuff(){
PARSER hid254;
return((TOPARSER hid254)());
}
static VOID hid255(){
VV(2) = V(1);
}
static STATUS hid256(){
PARSER lstuff;ACTION hid255;
return(p_attach0n(TOPARSER lstuff,0,hid255,0));
}
static STATUS hid257(){
PARSER hid256, p_nothing0;
return(p_andparse0n(TOPARSER hid256,0,TOPARSER p_nothing0,0));
}
static STATUS hid258(){
PARSER hid257;
return(p_many0n(TOPARSER hid257,0));
}
static STATUS hid259(){
PARSER lstuff, hid258;
return(p_andparse0n(TOPARSER lstuff,0,TOPARSER hid258,0));
}
static VOID hid260(){
VV(0)="";
}
static STATUS hid261(){
PARSER p_nothing0;ACTION hid260;
return(p_attach0n(TOPARSER p_nothing0,0,hid260,0));
}
static STATUS hid262(){
PARSER hid261, p_nothing0;
return(p_andparse0n(TOPARSER hid261,0,TOPARSER p_nothing0,0));
}
static STATUS hid263(){
PARSER hid259, hid262;
return(p_orparse0n(TOPARSER hid259,0,TOPARSER hid262,0));
}
STATUS lstuffs(){
PARSER hid263;
return((TOPARSER hid263)());
}
/* close the accumulator for lstuffs */
static VOID hid264(){
VV(1)=V(1);getname(&V(1));
}
static STATUS hid265(){
PARSER lstuffs;ACTION hid264;
return(p_attach0n(TOPARSER lstuffs,0,hid264,0));
}
static STATUS hid266(){
PARSER hid265, p_nothing0;
return(p_andparse0n(TOPARSER hid265,0,TOPARSER p_nothing0,0));
}
STATUS lits(){
PARSER hid266;
return((TOPARSER hid266)());
}
static VOID hid267(){
VV(2) = V(1);
}
static STATUS hid268(){
PARSER alstuff;ACTION hid267;
return(p_attach0n(TOPARSER alstuff,0,hid267,0));
}
static STATUS hid269(){
PARSER hid268, p_nothing0;
return(p_andparse0n(TOPARSER hid268,0,TOPARSER p_nothing0,0));
}
static STATUS hid270(){
PARSER hid269;
return(p_many0n(TOPARSER hid269,0));
}
static STATUS hid271(){
PARSER alstuff, hid270;
return(p_andparse0n(TOPARSER alstuff,0,TOPARSER hid270,0));
}
static VOID hid272(){
VV(0)="";
}
static STATUS hid273(){
PARSER p_nothing0;ACTION hid272;
return(p_attach0n(TOPARSER p_nothing0,0,hid272,0));
}
static STATUS hid274(){
PARSER hid273, p_nothing0;
return(p_andparse0n(TOPARSER hid273,0,TOPARSER p_nothing0,0));
}
static STATUS hid275(){
PARSER hid271, hid274;
return(p_orparse0n(TOPARSER hid271,0,TOPARSER hid274,0));
}
STATUS alstuffs(){
PARSER hid275;
return((TOPARSER hid275)());
}
/* close the accumulator for alstuffs */
static VOID hid276(){
VV(1)=V(1);getname(&V(1));
}
static STATUS hid277(){
PARSER alstuffs;ACTION hid276;
return(p_attach0n(TOPARSER alstuffs,0,hid276,0));
}
static STATUS hid278(){
PARSER hid277, p_nothing0;
return(p_andparse0n(TOPARSER hid277,0,TOPARSER p_nothing0,0));
}
STATUS alits(){
PARSER hid278;
return((TOPARSER hid278)());
}
static STATUS hid279(){
PARSER lits, RIGHTANGLEBRACKET;
return(p_andparse0n(TOPARSER lits,0,TOPARSER RIGHTANGLEBRACKET,0));
}
static STATUS hid280(){
PARSER LEFTANGLEBRACKET, hid279;
return(p_andparse0n(TOPARSER LEFTANGLEBRACKET,0,TOPARSER hid279,0));
}
static VOID hid281(){
VV(3) = V(2);
}
static STATUS hid282(){
PARSER hid280;ACTION hid281;
return(p_attach0n(TOPARSER hid280,0,hid281,0));
}
static STATUS hid283(){
PARSER hid282, p_nothing0;
return(p_andparse0n(TOPARSER hid282,0,TOPARSER p_nothing0,0));
}
STATUS LITERAL(){
PARSER hid283;
return((TOPARSER hid283)());
}
static STATUS hid284(){
PARSER alits, LEFTANGLEBRACKET;
return(p_andparse0n(TOPARSER alits,0,TOPARSER LEFTANGLEBRACKET,0));
}
static STATUS hid285(){
PARSER RIGHTANGLEBRACKET, hid284;
return(p_andparse0n(TOPARSER RIGHTANGLEBRACKET,0,TOPARSER hid284,0));
}
static VOID hid286(){
VV(3) = V(2) ;
}
static STATUS hid287(){
PARSER hid285;ACTION hid286;
return(p_attach0n(TOPARSER hid285,0,hid286,0));
}
static STATUS hid288(){
PARSER hid287, p_nothing0;
return(p_andparse0n(TOPARSER hid287,0,TOPARSER p_nothing0,0));
}
STATUS ANTILITERAL(){
PARSER hid288;
return((TOPARSER hid288)());
}
static VOID hid289(){
char *n;VV(1)=(GETNEWNAME(&n,plainenv,NULL),P_LIT(n,V(1)));
}
static STATUS hid290(){
PARSER LITERAL;ACTION hid289;
return(p_attach0n(TOPARSER LITERAL,0,hid289,0));
}
static STATUS hid291(){
PARSER hid290, p_nothing0;
return(p_andparse0n(TOPARSER hid290,0,TOPARSER p_nothing0,0));
}
STATUS literal(){
PARSER hid291;
return((TOPARSER hid291)());
}
static VOID hid292(){
char *n;VV(1)=(GETNEWNAME(&n,plainenv,NULL),P_ALI(n,V(1)));
}
static STATUS hid293(){
PARSER ANTILITERAL;ACTION hid292;
return(p_attach0n(TOPARSER ANTILITERAL,0,hid292,0));
}
static STATUS hid294(){
PARSER hid293, p_nothing0;
return(p_andparse0n(TOPARSER hid293,0,TOPARSER p_nothing0,0));
}
STATUS antiliteral(){
PARSER hid294;
return((TOPARSER hid294)());
}
static STATUS hid295(){
PARSER expr, CLOSEPAREN;
return(p_andparse0n(TOPARSER expr,0,TOPARSER CLOSEPAREN,0));
}
static STATUS hid296(){
PARSER OPENPAREN, hid295;
return(p_andparse0n(TOPARSER OPENPAREN,0,TOPARSER hid295,0));
}
static VOID hid297(){
char *n;VV(3)=(getname(&V(2)),GETNEWNAME(&n,plainenv,NULL),P_RAN(n,V(2)));
}
static STATUS hid298(){
PARSER hid296;ACTION hid297;
return(p_attach0n(TOPARSER hid296,0,hid297,0));
}
static STATUS hid299(){
PARSER hid298, p_nothing0;
return(p_andparse0n(TOPARSER hid298,0,TOPARSER p_nothing0,0));
}
STATUS range(){
PARSER hid299;
return((TOPARSER hid299)());
}
static STATUS hid300(){
PARSER expr, OPENPAREN;
return(p_andparse0n(TOPARSER expr,0,TOPARSER OPENPAREN,0));
}
static STATUS hid301(){
PARSER CLOSEPAREN, hid300;
return(p_andparse0n(TOPARSER CLOSEPAREN,0,TOPARSER hid300,0));
}
static VOID hid302(){
char *n;VV(3)=(getname(&V(2)),GETNEWNAME(&n,plainenv,NULL),P_TST(n,V(2)));
}
static STATUS hid303(){
PARSER hid301;ACTION hid302;
return(p_attach0n(TOPARSER hid301,0,hid302,0));
}
static STATUS hid304(){
PARSER hid303, p_nothing0;
return(p_andparse0n(TOPARSER hid303,0,TOPARSER p_nothing0,0));
}
STATUS test(){
PARSER hid304;
return((TOPARSER hid304)());
}
static VOID hid305(){
VV(1)="p_first0";
}
static STATUS hid306(){
PARSER CARET;ACTION hid305;
return(p_attach0n(TOPARSER CARET,0,hid305,0));
}
static STATUS hid307(){
PARSER hid306, p_nothing0;
return(p_andparse0n(TOPARSER hid306,0,TOPARSER p_nothing0,0));
}
STATUS beginmatch(){
PARSER hid307;
return((TOPARSER hid307)());
}
static VOID hid308(){
VV(1)="p_last0";
}
static STATUS hid309(){
PARSER DOLLAR;ACTION hid308;
return(p_attach0n(TOPARSER DOLLAR,0,hid308,0));
}
static STATUS hid310(){
PARSER hid309, p_nothing0;
return(p_andparse0n(TOPARSER hid309,0,TOPARSER p_nothing0,0));
}
STATUS finishmatch(){
PARSER hid310;
return((TOPARSER hid310)());
}
static VOID hid311(){
VV(1)="p_uniq0";
}
static STATUS hid312(){
PARSER PLING;ACTION hid311;
return(p_attach0n(TOPARSER PLING,0,hid311,0));
}
static STATUS hid313(){
PARSER hid312, p_nothing0;
return(p_andparse0n(TOPARSER hid312,0,TOPARSER p_nothing0,0));
}
STATUS plingmatch(){
PARSER hid313;
return((TOPARSER hid313)());
}
static STATUS hid314(){
PARSER DOLLAR, PLING;
return(p_andparse0n(TOPARSER DOLLAR,0,TOPARSER PLING,0));
))static VOID hid315(){
VV(2)="p_lastuniq0";
}
static STATUS hid316(){
PARSER hid314;ACTION hid315;
return(p_attach0n(TOPARSER hid314,0,hid315,0));
}
static STATUS hid317(){
PARSER hid316, p_nothing0;
return(p_andparse0n(TOPARSER hid316,0,TOPARSER p_nothing0,0));
}
STATUS dollarplingmatch(){
PARSER hid317;
return((TOPARSER hid317)());
}
static STATUS hid318(){
PARSER DOLLAR, DOLLAR;
return(p_andparse0n(TOPARSER DOLLAR,0,TOPARSER DOLLAR,0));
}
static VOID hid319(){
VV(2)="p_eof0";
}
static STATUS hid320(){
PARSER hid318;ACTION hid319;
return(p_attach0n(TOPARSER hid318,0,hid319,0));
}
static STATUS hid321(){
PARSER hid320, p_nothing0;
return(p_andparse0n(TOPARSER hid320,0,TOPARSER p_nothing0,0));
}
STATUS eofmatch(){
PARSER hid321;
return((TOPARSER hid321)());
}
/* another overpull */
static VOID hid322(){
char *n;VV(2)=(GETNEWNAME(&n,plainenv,NULL),P_SOM(n,V(1)));
}
static STATUS hid323(){
PARSER PLUS;ACTION hid322;
return(p_attach0n(TOPARSER PLUS,0,hid322,0));
}
static STATUS hid324(){
PARSER hid323, p_nothing0;
return(p_andparse0n(TOPARSER hid323,0,TOPARSER p_nothing0,0));
}
STATUS plusop(){
PARSER hid324;
return((TOPARSER hid324)());
}
static STATUS hid325(){
PARSER expr, CLOSEPAREN;
return(p_andparse0n(TOPARSER expr,0,TOPARSER CLOSEPAREN,0));
}
static STATUS hid326(){
PARSER OPENPAREN, hid325;
return(p_andparse0n(TOPARSER OPENPAREN,0,TOPARSER hid325,0));
}
static STATUS hid327(){
PARSER SLASH, hid326;
return(p_andparse0n(TOPARSER SLASH,0,TOPARSER hid326,0));
}
static VOID hid328(){
char *n; VV(5)=(getname(&V(4)),GETNEWNAME(&n,plainenv,NULL),P_HID(n,V(1),V(4)));
}
static STATUS hid329(){
PARSER hid327;ACTION hid328;
return(p_attach0n(TOPARSER hid327,0,hid328,0));
}
static STATUS hid330(){
PARSER hid329, p_nothing0;
return(p_andparse0n(TOPARSER hid329,0,TOPARSER p_nothing0,0));
}
STATUS hideop(){
PARSER hid330;
return((TOPARSER hid330)());
}
/* ------- finis -------- */
MAIN(line)